/**
 * @brief XML文件头文件
 * @author zhangpeihao
 */

#include <zsystem/core/xml/xmlbase.h>

#pragma once

#ifndef MAX_PATH
#define MAX_PATH 1024
#endif

namespace zsystem {
	/**
	 * @brief XML文件基类
	 */
  class xmlFile : public xmlbase {
	public:
		/**
		 * @brief 构造函数
		 */
		xmlFile()
    :xmlbase()
		{
      _strFilePath[0] = '\0';
		}

		///析构函数
		virtual ~xmlFile(){
		}

    /**
		 * @brief 打开文件
		 * @param[in] filePath 文件名，相对路径或全路经
		 * @return 成功或失败
		 */
    const Z_BOOL open(const char* filePath){
      if (_doc->LoadFile(filePath))
      {
        Z_STRNCPY(_strFilePath, filePath, sizeof(_strFilePath));
        return Z_TRUE;
      }
      else
      {
        return Z_FALSE;
      }
    }

    /**
		 * @brief 保存文件
		 * @return 成功或失败
		 */
    const Z_BOOL save(){
      if (_doc->SaveFile())
      {
        return Z_TRUE;
      }
      else
      {
        return Z_FALSE;
      }
    }

    /**
		 * @brief 取得文件路径
		 * @return 文件路径
		 */
    const char* getFilePath() const{
      return _strFilePath;
    }
  protected:
    char _strFilePath[MAX_PATH];
	};

} 
 
